package com.chart.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chart.chart.domian.req.UListReq;
import com.chart.chart.domian.resp.UserResp;
import com.chart.chart.domian.vo.UserCoinLogVo;
import com.chart.common.core.domain.AjaxResult;
import com.chart.common.core.domain.entity.UserCoinLog;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

public interface IUserCoinLogsService extends IService<UserCoinLog> {
    int addLoginCoins(Long userId);
    int addInfoCompletionCoins(Long userId);
    int addShareCoins(Long userId);

    Integer getTotalCoinsByUserId(Long userId);

    int deductAiCoins(Long userId);

    int deductCasePool(Long userId);


    void saveBehaviorNo(Long userId);
    void saveBehaviorYes(Long userId);
    void saveBehaviorClose(Long userId);

    Integer getTotalNoByUserId(Long userId);
    Integer getTotalYesByUserId(Long userId);
    Integer getTotalCloseByUserId(Long userId);

    AjaxResult operationPv();

    Long operationTotal();

    AjaxResult operationUv( );


    List<UserCoinLog> operationUvTotal();


    AjaxResult operation();

    AjaxResult logActivity();

    AjaxResult getActivitySummary();

    void saveAnalyzeUsersPay(String action);


    List<UserCoinLog> getUserCoinLogsByAction(String action);


    Integer shereUv();

    void saveSelfProduce();

    Integer querySelfProduce();

    void saveAiSelfProduce();


    Integer queryAiSelfProduce();


    void expertSave(Long configsUserId);

    void expertSaveExport(Long configsUserId);

//    List<UserCoinLog> queryExpertSavePv();


    Integer queryExpertSaveUv();

    Integer queryExpertSaveUvs();

    List<Map<String, Object>> queryExpertSaveExportUV();

    void saveAiSave();

    Integer queryAiSave();

    int addweChatPublicnumber(Long userId);


    int  querySeatCount();

    int residueTime(Long userId);


    Map<String, Object> queryExpertSaveExportStats() throws ParseException;


    List<UserCoinLogVo> getChartData(UListReq req);

    List<UserResp> querydemo();

    List<UserCoinLog> queryAction(UListReq req);

    List<UserCoinLogVo>  queryExpertSaveExports(UListReq req);


}
